A processor is designed to execute a program, which is set of instructions configured for execution in a predefined order. When the program is executed, it is expected that the instructions are executed in the predefined order. However, in some situations, the order with which the instructions are executed may deviate from the predefined order. Such deviations may be caused by, for example, hardware errors, electromagnetic radiation, or malicious interference. For some applications, it's sufficient that the instructions execute according to the predefined order most of the time. However, for certain other applications, it's important that the instructions always execute according to the predefined order. For example, it's important that the instructions always execute according to the predefined order for safety-related applications.
Some automotive radar systems are employed to ensure the safety of drivers and passengers by, for example, providing lane change assistance, blind spot monitoring, and/or automatic breaking. Due to the safety importance of the automotive radar systems, safety monitoring units and safety controllers may be employed to monitor devices of the automotive radar systems. The safety monitoring units are hardware devices configured to perform tests on the monitored devices. For example, a safety monitoring unit may be configured to input a radio frequency (RF) signal into an RF receive chain and to compare an output of the receive chain to an expected output. The safety controllers are programmable devices comprising memories configured to store programs, as well as processors configured to execute the programs to trigger the tests and, in some embodiments, evaluate results of the tests. As such, it's important that instructions of the programs are executed according to predefined orders.
One approach for reducing the likelihood of instructions being executed out of order is to design processors to higher standards. For example, whereas processors in the automotive industry are often designed to meet the quality management standard of ISO/TS 16949, the processors may be designed to meet the higher, safety standard of ISO 26262. However, designing the processors to meet higher standards is challenging and costly given the complexity of the processors. Another approach for reducing the likelihood of instructions being executed out of order is to implement programs as state machines. However, implementing the programs as state machines reduces the ease with which the programs can be changed.